/*=============================================================================
*
*   Copyright (C) 2020 All rights reserved.
*
*   Filename:		update_time_step.hpp
*
*   Author: Wang Zhecheng - wangzhecheng@yeah.net
*
*   Date: 2020-03-16 05:53
*
*   Last Editors: Wang Zhecheng - wangzhecheng@yeah.net
*
*   Last modified:	2020-08-04 01:23
*
*   Description:
*
=============================================================================*/
#ifndef UPDATE_TIME_STEP_H
#define UPDATE_TIME_STEP_H

#include "../couple/displacement.hpp"
#include "../time_step.hpp"
#include "assemble_elemental_mat.hpp"
#include <type_traits>

namespace geoxfem {
namespace model {

template <typename LoadPolicy>
struct check_convergence {
  static bool apply(const VectorXR&, _real&) {
    throw "not implemented yet";
  }
};

template <typename LoadPolicy>
struct update_tensor {
  template <typename DimensionType, typename degree>
  static void apply(geometry::ShapeInterface<DimensionType, degree>& shp) {
    throw "not implemented yet";
  }
};

template <typename CouplePolicy, typename LoadPolicy>
struct update_iteration {};

template <typename CouplePolicy, typename LoadPolicy>
struct update_time_step {};

}  // namespace model
}  // namespace geoxfem

#endif /* UPDATE_TIME_STEP_H */
